Application developers and application system integrators often use software-based tools to design the application architecture to solve a business need. The business, system, and component functional and non-functional requirements are identified to facilitate the design. Subsequently, a software-based modeling tool is used to develop use cases, system context diagrams, component models, deployment models and data flow diagrams. Code is then written (or a software package is purchased) and a tool is used as a repository to hold an “application bundle” for deployment. An infrastructure information technology (IT) architect then designs the physical environment to host the application bundle. The infrastructure IT architect repeats a large amount of the previously captured information which may or may not be made available to them, such as the business, system, and component functional and non-functional requirements. The same modeling tools are then used to develop a second set of use cases, system context diagrams, component models, deployment models and data flow diagrams, where an IT infrastructure design is produced that captures the “run time environment” for the application and the infrastructure (i.e., hardware, operating system and middleware) bundle. A systems engineer builds the run time environment (i.e., install and configure switches, servers, operating systems, etc.) and then an applications engineer installs the application bundle. In known techniques for deploying an application, the respective design processes of the application developer and the infrastructure IT architect are disjointed, resulting in an unacceptable amount of application and infrastructure defects, inflexible application components and infrastructure building blocks, and significant costs related to lengthy infrastructure design times and infrastructure and application deployment times. Furthermore, the disjointedness between the design processes of the application developer and the infrastructure IT architect makes it difficult to identify and manage the impact of a change in a requirement in real time prior to the phase of deploying an application. Thus, there exists a need to overcome at least one of the preceding deficiencies and limitations of the related art.